// const arrayMethods={name:'武',age:'22',sex:'男'}
// // const arrayMethods=[1,2,8,9,6,3,0]
// console.log(arrayMethods);

// function Student(name){
//     console.log(name);
//     this.name
// }
// var s1=new Student('武')
// console.log(s1);
// function myNew(name){
//     var obj=Object.create(Student.prototype)
//     obj
//     console.log(obj);
//     Student.call(obj,name)
//     return obj
// }
// myNew('小明')

// function myNew(name,age,car){
//     console.log(arguments);
// }
// myNew('1','2','3')


// console.log(
//     Array() // []
// );
// console.log(
//     Array(2) // [, , ,]
// );
// console.log(
//     Array(4, 11, 8) // [3, 11, 8]
// );


// Set 用于去重
// let arr=[1,2,3,1,2,3,4,8,6,7,5,8,4,5,6,4,0,62,1,0,]
// let set =new Set(arr)
// // console.log(Array(set));
// console.log([...set]);

// const a=1
// function b(){
//     // const a=123
//     console.log(a);    
// }
// b()


// let ProxyObj=new Proxy({},{})
// console.log(ProxyObj);

// const p=new Proxy(target,handler)
// target
// 要使用Proxy包装的目标对象（可以是任何类型的对象，包括原生数组，函数，甚至一个代理）
// handler
// 一个通常以函数作为属性的对象，个属性中的函数分别定义了在执行各种操作时代理p的行为
// console.log(p);



// function huijia(callback){
//     console.log('回家中...');
//     setTimeout(()=>{
//         console.log('回到家');
//         callback()
//     },3000)
// }

// function chifan(){
//     console.log('吃饭中...');
//     setTimeout(()=>{
//         console.log('吃完饭');
//         callback()
//     },5000)
// }
// // huijia()
// // chifan()
// huijia(()=>{
//     chifan(()=>{})
// })


// var p1 =  new Promise((resolve, reject) => {
//         // reject('123')
//         console.log('回家中...')
//         setTimeout(() => {
//             console.log('回到家')
//             reject(123)
//         }, 3000)
//     })


// var p2 = new Promise((resolve, reject) => {
//         console.log('吃饭中...')
//         setTimeout(() => {
//             console.log('吃完饭')
//             resolve(456)
//         }, 5000)
//     })

// var p3=p2()
// p3.then((result) => {
//     console.log(result);
// }).finally((err) => {
//     console.log(err);
//     console.log('err');
// });
// Promise.all([p1, p2]).then((res) => {
//     console.log(res, '成功了');
// }).catch(err => {
//     console.log(err, '失败了');
// })
// p1.then(res=>{
//     // console.log(res);
//     return p2
// })
// Promise.any([p1, p2]).then((res) => {
//     console.log(res, '成功了');
// }).catch(err => {
//     console.log(err, '失败了');
// })

// async function doAsync(){
//     var p1res=await p1()
//     console.log('p1结果',p1res);
//     var p2res=await p2()
//     console.log('p2结果',p2res);
// }
// doAsync()



// var list={name:'武'}
// function getNume(arr){
//     return arr.name
// }
// console.log(getNume(list));
// console.log(list);

// const object='true'
// // for (const iterator of object) {
// //     console.log(iterator);
// // }

// var itera=object[Symbol.iterator]()
// console.log(itera.next());
// console.log(itera.next());
// console.log(itera.next());
// console.log(itera.next());

// function *getNext(){
//     yield 't'
//     yield 'r'
//     yield 'u'
//     return 'e'
// }
// var nextFunc=getNext()

// console.log(nextFunc.next());
// console.log(nextFunc.next());
// console.log(nextFunc.next());
// console.log(nextFunc.next());
// console.log(nextFunc.next());

// arguments遍历数组
function add(num1, num2) {
    //遍历实参
    for (var i = 0; i < arguments.length; i++) {
        console.log(arguments[i])
    }
}
add([5,6],[7,9,2,8])